package br.com.main.client;

import br.com.main.client.LoginPresenter.Display;

import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

public class LoginView extends Composite implements Display {

	private Image erro1;
	private HorizontalPanel painelLogin;
	private VerticalPanel loginPanel;
	private Label loginTexto;
	private TextBox login;
	private Label senhaTexto;
	private PasswordTextBox senha;
	private Button entrar;
	private Label lbIdCond;


	private TextBox tbIdCond;
	private ListBox lista;
	private Label recuperar;
	private Label cadastro;

	public LoginView() {
		init();
		initWidget(loginPanel);
	}

	private void init() {
		painelLogin = new HorizontalPanel();
		painelLogin.setSpacing(5);

		erro1 = new Image("imagens/alerta.png");
		erro1.setVisible(false);
		erro1.setTitle("Login incorreto");

		loginTexto = new Label("Login");
		login = new TextBox();
		senhaTexto = new Label("Senha");
		senha = new PasswordTextBox();
		
		lbIdCond = new Label("Identificador do Condomínio");
		lbIdCond.setVisible(false);
		tbIdCond = new TextBox();
		tbIdCond.setVisible(false);
		
		lista = new ListBox();
		lista.addStyleName("listaCadastro");
		lista.addItem("Síndico");
		lista.addItem("Morador");
		
		entrar = new Button("Entrar");
		entrar.addStyleName("botaoLogin");
		recuperar = new Label("Esqueci minha senha");
		recuperar.addStyleName("labelDist");
		recuperar.addStyleName("labelPointer");
		cadastro = new Label("Cadastrar");
		cadastro.addStyleName("labelPointer");


		loginPanel = new VerticalPanel();
		loginPanel.addStyleName("borda");

		painelLogin.add(login);
		painelLogin.add(erro1);
		login.addStyleName("loginEspaco");
		
		HorizontalPanel hpPanel = new HorizontalPanel();
		hpPanel.add(lista);
		hpPanel.add(entrar);

		loginPanel.add(loginTexto);
		loginPanel.add(painelLogin);
		loginPanel.add(senhaTexto);
		loginPanel.add(senha);
		loginPanel.add(lbIdCond);
		loginPanel.add(tbIdCond);
		loginPanel.add(hpPanel);
		loginPanel.add(recuperar);
		loginPanel.add(cadastro);
	}
	
	@Override
	public TextBox getTbIdCond() {
		return tbIdCond;
	}

	@Override
	public Label getCadastro() {
		return cadastro;
	}

	@Override
	public Button getEntrar() {
		return entrar;
	}

	@Override
	public void cleanCampos() {
		login.setValue("");
		senha.setValue("");
		tbIdCond.setValue("");
		erro1.setVisible(false);
		loginPanel.setStyleName("bordaErro", false);
	}

	@Override
	public TextBox getLogin() {
		return login;
	}

	@Override
	public PasswordTextBox getSenha() {
		return senha;
	}

	@Override
	public void erro() {
		erro1.setVisible(true);
		loginPanel.addStyleName("bordaErro");
	}
	
	@Override
	public ListBox getLista() {
		return lista;
	}

	@Override
	public void isMorador() {
		if (lista.getSelectedIndex() == 1) {
			changeModulo(true);
		} else {
			changeModulo(false);
		}
	}
	
	@Override
	public Label getRecuperar() {
		return recuperar;
	}

	public void changeModulo(boolean b) {
		lbIdCond.setVisible(b);
		tbIdCond.setVisible(b);
	}

}